//package com.yunshang.shoppingmall.shopping.User;
//
//import com.alibaba.fastjson.JSON;
//import com.yunshang.shoppingmall.common.*;
//import com.yunshang.shoppingmall.controller.User.JsonRootBean;
//import com.yunshang.shoppingmall.entity.*;
//import com.yunshang.shoppingmall.service.ConfigService;
//import com.yunshang.shoppingmall.service.SysMessageService;
//import com.yunshang.shoppingmall.service.User.UserNoService;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.servlet.ModelAndView;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//@Controller
//@RequestMapping("/API")
//public class APIUserNoController {
//    Logger logger= LoggerFactory.getLogger(APIUserNoController.class);
//    @Autowired
//    SysMessageService sysMessageService;
//
//    @Autowired
//    UserNoService userNoService;
//
//    @Autowired
//    ConfigService configService;
//
////    public Config userConfig= configService.selectByPrimaryKey(1);
////    public String UserUrl = userConfig.getUserUrl();
////    public String key = userConfig.getUserKey();
//
//    //会员编号登陆
//    @ResponseBody
//    @RequestMapping(value = "/user/JsonUserNoLogin",method = RequestMethod.POST)
//    public Response JsonUserNoListLogin(HttpServletRequest request, String userNo, String pwd) {
//
//        if (!userNo.isEmpty() && !pwd.isEmpty()) {
//            try {
//                UserNo userNo1 = userNoService.selectLogin(userNo);
//                if(userNo1!=null) {
//                    if (userNo1.getSalt() == null||userNo1.getSalt().equals("")||userNo1.getSalt().toLowerCase().equals("null")) {
//                        userNo1.setSalt("0");
//                    }
//                    String Pwd = com.yunshang.shoppingmall.common.Pwd.GetPwd(pwd.trim(), userNo1.getSalt());
//                    System.out.println(Pwd);
//                    System.out.println(userNo1.getPwd().trim() + "---");
//                    System.out.println(userNo1.getSalt());
//                    if (userNo1.getPwd().trim().equals(Pwd)) {
//                        //获取用户基础资料
//                        Config config=configService.selectByPrimaryKey(1);
//                        String jsonUrl = config.getUserUrl() + "/API/user/User";
//                        // String jsonUrl = "http://127.0.0.1:8086/API/user/User";
//                        String param = "key=" + config.getUserKey() + "&userId=" + userNo1.getUserId();
//                        System.out.println(jsonUrl + "?" + param);
//                        String jsonText = HttpRequest.sendGet(jsonUrl, param);
//                        System.out.println(jsonText + "------------");
//
//                        JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//                        List<User> userList = jsonRootBean.getData();
//
//                        HttpSession session = request.getSession();
//                        userNo1.setLoginType(1);//会员编号登录
//                        userNo1.setPhone(userList.get(0).getPhone());//手机号赋值
//                        session.setAttribute("userNo", userNo1);
//
//                        return new Response(MessageConstants.MSG_SUCCESS, null, "");
//                    } else {
//                        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "编号或密码错误");
//                    }
//                }
//            } catch (Exception e) {
//                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "编号或密码错误");
//            }
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
//    /*打开用户名登录页面*/
//    @RequestMapping("/openLoginPwd")
//    public String openLoginPwd(){
//        return "shoppingApi/user/loginbypassword";
//    }
//
//    /*打开手机登录页面*/
//    @RequestMapping("/openLoginByPhone1")
//    @ResponseBody
//    public ModelAndView openLoginByPhone1(){
//        ModelAndView modelAndView=new ModelAndView("shoppingApi/user/loginbyphone");
//        return modelAndView;
//    }
//
//    /*打开手机登录页面*/
//    @RequestMapping("/openLoginByPhone")
//    public String openLoginByPhone(){
//        return "shoppingApi/user/loginbyphone";
//    }
//
//    /*打开注册页面*/
//    @RequestMapping("/openRegister")
//    public String getRegister(){
//        return "shoppingApi/user/register";
//    }
//
//    /*验证用户编号是否已经存在*/
//    @ResponseBody
//    @RequestMapping("/getUserNO")
//    public Map<String ,Object> getUserNO(String userNO){
//        Map<String,Object> map=new HashMap<>();
//        if(userNO!=""&&userNO!=null){
//            UserNo userNo=userNoService.selectUserByUserNO(userNO);
//            if(userNo!=null){
//                map.put("msg",'1');//1标志存在
//            }else{
//                map.put("msg",'0');//0标志不存在
//            }
//
//        }
//        return map;
//    }
//
//
//    //会员手机登陆发送验证码
//    @ResponseBody
//    @RequestMapping("/user/JsonUserNoPhoneCode")
//    public String JsonUserNoPhoneCode(HttpServletRequest request,String phone) {
//        Config config=configService.selectByPrimaryKey(1);
//        String json = "{\"stat\":\"666004\",\"message\":\"手机号码错误\"}";
//        if (OtherConstants.RegexpPhone(phone)) {
//            String jsonUrl = config.getUserUrl() + "/API/user/User2";
//            System.out.println(jsonUrl);
//            String param = "key=" + config.getUserKey() + "&phone=" + phone;
//            String jsonText = HttpRequest.sendGet(jsonUrl, param);
//
//
//            JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//            List<User> userList = jsonRootBean.getData();
//            if (userList != null) {
//                if (userList.size() > 0) {
//                    if (OtherConstants.RegexpPhone(phone)) {
//                        String randomNumCode = Md5.getRandomNumCode(4);
//
//                        HttpSession session = request.getSession();
//                        session.setAttribute("randomNumCode", randomNumCode);
//                        session.setAttribute("phone", phone);
//
//                        json = SMSAPI.SMSAPI_code(phone, randomNumCode,config);
//                    }
//                }
//            } else {
//                json = "{\"stat\":\"666004\",\"message\":\"没有该手机号码\"}";
//            }
//        }
//        return json;
//    }
//
//    //会员手机登陆
//    @ResponseBody
//    @RequestMapping("/user/JsonUserNoPhoneLogin")
//    public Response JsonUserNoPhoneLogin(HttpServletRequest request, String phone, String code) {
//        Config config=configService.selectByPrimaryKey(1);
//        if (OtherConstants.RegexpPhone(phone)) {
//            if (!code.isEmpty()) {
//                HttpSession session = request.getSession();
//                String randomNumCode = (String) session.getAttribute("randomNumCode");
//                if ( true) {
//                    String jsonUrl = config.getUserUrl() + "/API/user/User2";
//                    String param = "key=" + config.getUserKey() + "&phone=" + phone;
//                    String jsonText = HttpRequest.sendGet(jsonUrl, param);
//                    JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//                    List<User> userList = jsonRootBean.getData();
//                    if (userList!=null&&userList.size() > 0) {
//                        User user1 = userList.get(0);
//                        session.setAttribute("user", user1);
//                        session.removeAttribute("randomNumCode");
//                        session.removeAttribute("phone");
//
//                        List<UserNo> userNoList = userNoService.userIdSelectUserNoList(user1.getUserId());
//                        if (userNoList.size() > 0) {
//                            UserNo userNo=userNoList.get(0);
//                            userNo.setLoginType(2);//手机号登录
//                            userNo.setPhone(user1.getPhone());//手机号赋值
//                            session.setAttribute("userNo", userNo);
//                            return new Response(MessageConstants.MSG_SUCCESS, userNo, "");
//                        }
//                    }
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "验证码错误!!");
//                } else {
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "验证码错误!!");
//                }
//            }
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
////    //获取会员积分余额
////    @ResponseBody
////    @RequestMapping("/user/getBalance")
////    public Response getBalance(HttpServletRequest request, int classify) {
////        if (!loginOut.checkLogin(request)) {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////        }
////
////        if (classify > 0) {
////            HttpSession session = request.getSession();
////            UserNo userNo1 = (UserNo) session.getAttribute("userNo");
////            if (userNo1 == null) {
////                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////            } else {
////                BigDecimal balance = FinaceMethods.getUserBalance(userNo1.getId(), classify);
////
////                System.out.println(balance + "---->");
////                if (balance == null) {
////                    return new Response(MessageConstants.MSG_SUCCESS, 0, "");
////                }
////                return new Response(MessageConstants.MSG_SUCCESS, balance, "");
////            }
////        } else {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误!!");
////        }
////    }
//
//    //会员手机注册发送验证码
//    @ResponseBody
//    @RequestMapping("/user/JsonUserNoPhone")
//    public Map<String ,Object> JsonUserNoPhone(HttpServletRequest request,String phone) {
//        Map<String ,Object> map=new HashMap<>();
//        Config config=configService.selectByPrimaryKey(1);
//        logger.info("config="+config);
//        String json = "{\"stat\":\"666004\",\"message\":\"手机号码错误\"}";
//        if (OtherConstants.RegexpPhone(phone)) {
//            //String jsonUrl = config.getUserUrl() + "/API/user/User2";
//            String jsonUrl="http://127.0.0.1:8093/API/user/User2";
//
//            String param = "key=" + config.getUserKey() + "&phone=" + phone;
//
//            String jsonText = HttpRequest.sendGet(jsonUrl, param);
//
//            logger.info("jsonText"+jsonText);
//            JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//            List<User> userList = jsonRootBean.getData();//用户编号
//
//            if (userList != null) {
//                    //判断有多少个绑定编号,每个手机号码只能最多绑定两个编号
//                    List<UserNo> userNoList = userNoService.userIdSelectUserNoList(userList.get(0).getUserId());
//                    if (userNoList != null && userNoList.size() > 1) {
//                        json = "{\"stat\":\"666010\",\"message\":\"同一手机号最多绑定两个编号\"}";
//
//                    } else {
//                        if (OtherConstants.RegexpPhone(phone)) {
//                            String randomNumCode = Md5.getRandomNumCode(4);
//
//                            HttpSession session = request.getSession();
//                            session.setAttribute("regCode", randomNumCode);
//                            session.setAttribute("regPhone", phone);
//
//                            //注册验证码
////                            json = SMSAPI.SMSAPI_Reg_code(phone, randomNumCode,config);
//
//                            //json = SMSAPI.SMSAPI_code(phone, randomNumCode);
//                            map.put("Regcode",0000);
//                            json = "{\"stat\":\"100\",\"message\":\"没有该手机号码00000kkk"+userNoList.size()+"\"}";
//                        }
//                    }
//
//            } else {
//                if (OtherConstants.RegexpPhone(phone)) {
//                    String randomNumCode = Md5.getRandomNumCode(4);
//
//                    HttpSession session = request.getSession();
//                    session.setAttribute("regCode", randomNumCode);
//                    session.setAttribute("regPhone", phone);
////                    json = "{\"stat\":\"666000\",\"message\":\"没有该手机号码"+null+"\"}";
//                    json = "{\"stat\":\"100\",\"message\":\"没有该手机号码"+null+"\"}";
//                    //注册验证码
//                   // json = SMSAPI.SMSAPI_Reg_code(phone, randomNumCode,config);
//                    System.out.println("randomNumCode=="+randomNumCode);
//                    logger.info("-----json--->"+ json);
//                        map.put("Regcode",randomNumCode);
//                    //json = SMSAPI.SMSAPI_code(phone, randomNumCode);
//                    //json = "{\"stat\":\"666002\",\"message\":\"没有该手机号码"+userNoList.size()+"\"}";
//                }
//
////                json = "{\"stat\":\"666004\",\"message\":\"没有该手机号码\"}";
//            }
//        }
//        map.put("json",json);
//        return map;
//    }
//
//
//
//    //会员注册
//    @ResponseBody
//    @RequestMapping(value = "/user/JsonUserNoPhoneReg" ,method = RequestMethod.POST)
//    public Response JsonUserNoPhoneReg(HttpServletRequest request, String userNo, String pwd, String phone, String code) {
//        Config config=configService.selectByPrimaryKey(1);
//        if (OtherConstants.RegexpPhone(phone)) {
//            if (!code.isEmpty()) {
//                HttpSession session = request.getSession();
//                String randomNumCode = (String) session.getAttribute("regCode");
//                if ( code.equals(randomNumCode)) {
//
//                    //判断编号是否存在
//                    if (!userNo.isEmpty() && !pwd.isEmpty()) {
//                        try {
//                            UserNo userNo1 = userNoService.selectLogin(userNo);
//                            if (userNo1 != null) {
//                                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "编号已经存在!!");
//                            } else {
//                                //编号不存在，进行注册
//                                //注册资料
//
//                                //分享人
//                                int recommend = 0;
//                                try {
//                                    recommend = (int) session.getAttribute("recommend");
//                                } catch (Exception e) {
//
//                                }
//
//                                String jsonUrl = config.getUserUrl() + "/API/user/User3";
//                                System.out.println(jsonUrl);
//                                String param = "key=" + config.getUserKey() + "&phone=" + phone + "&recommend=" + recommend;
//                                System.out.println(param);
//                                String jsonText = HttpRequest.sendGet(jsonUrl, param);
//
//                                System.out.println(jsonText);
//
//                                JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//                                List<User> userList = jsonRootBean.getData();
//                                if (userList != null) {
//                                    if (userList.size() > 0) {
//
//                                        String saltCode = Md5.getRandomNumCode(4);
//
//
//                                        //注册编号
//                                        UserNo userNo2 = new UserNo();
//                                        userNo2.setUserNo(userNo);
//                                        userNo2.setName(userNo);
//                                        userNo2.setRank(19);
//                                        userNo2.setRecommend(recommend);
//                                        userNo2.setSort(1000);
//                                        userNo2.setAngel(0);
//                                        userNo2.setSalt(saltCode);
//                                        userNo2.setPwd(Pwd.GetPwd(pwd, saltCode));
//                                        userNo2.setUserId(userList.get(0).getUserId());
//
//                                        //分享附带的代金券
//
//                                        int rows = userNoService.insert(userNo2);
//                                        if (rows > 0) {
//                                            return new Response(MessageConstants.MSG_SUCCESS, null, "注册编号成功!!");
//                                        } else {
//                                            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "注册编号错误，请重试或联系客服!!");
//                                        }
//                                    }
//                                }
//                                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "绑定手机号码错误，请重试或联系客服!!");
//                            }
//                        } catch (Exception e) {
//                            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "编号判断错误，请重试或联系客服!!");
//                        }
//                    }
//
//                } else {
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "验证码错误!!");
//                }
//            }
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
//
//    /*打开找回密码页面*/
//    @RequestMapping("/changeLoginPwd")
//    public String openChangeLoginPwd(){
//        return "shoppingApi/user/changeloginpassword";
//    }
//
//
//    //会员编号是否存在
//    @ResponseBody
//    @RequestMapping("/user/blUserNo")
//    public Response blUserNo(HttpServletRequest request, String userNo) {
//
//        if (!userNo.isEmpty()) {
//
//            try {
//                UserNo userNo1 = userNoService.selectLogin(userNo);
//                if (userNo1 != null) {
//                    HttpSession session = request.getSession();
//                    session.setAttribute("pwdUserId", userNo1.getUserId());
//                    session.setAttribute("pwdId", userNo1.getId());
//                    return new Response(MessageConstants.MSG_SUCCESS, null, "编号存在!!");
//                } else {
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "编号不存在!!");
//                }
//            } catch (Exception e) {
//                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "读取编号错误，请重试或者联系客服!!");
//            }
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
//    //找回密码发送验证码
//    @ResponseBody
//    @RequestMapping("/user/PwdPhoneCode")
//    public String PwdPhoneCode(HttpServletRequest request, String phone) {
//        Config config=configService.selectByPrimaryKey(1);
//        String json = "{\"stat\":\"666004\",\"message\":\"手机号码错误\"}";
//        if (OtherConstants.RegexpPhone(phone)) {
//            String jsonUrl = config.getUserUrl() + "/API/user/User2";
//            String param = "key=" + config.getUserKey() + "&phone=" + phone;
//            String jsonText = HttpRequest.sendGet(jsonUrl, param);
//            HttpSession session = request.getSession();
//
//            JsonRootBean jsonRootBean = JSON.parseObject(jsonText, JsonRootBean.class);
//            List<User> userList = jsonRootBean.getData();
//            if (userList != null) {
//                if (userList.size() > 0) {
//                    int uiserId = (int) session.getAttribute("pwdUserId");
//
//                    System.out.println(uiserId+"-->");
//                    System.out.println(userList.get(0).getUserId()+"<--");
//
//                    if (uiserId == userList.get(0).getUserId()) {
//                        if (OtherConstants.RegexpPhone(phone)) {
//                            String randomNumCode = Md5.getRandomNumCode(4);
//
//                            session.setAttribute("pwdCode", randomNumCode);
//
//                            //json = SMSAPI.SMSAPI_Pwd_code(phone, randomNumCode);
//
//                            json = "{\"stat\":\"100\",\"message\":\"短信已经发送!!\"}";
//
//                        }
//                    } else {
//                        json = "{\"stat\":\"666004\",\"message\":\"该手机号码和用户名不一致!!\"}";
//                    }
//                }
//            } else {
//                json = "{\"stat\":\"666004\",\"message\":\"没有该手机号码\"}";
//            }
//        }
//        return json;
//    }
//
//    //找回密码验证码验证
//    @ResponseBody
//    @RequestMapping("/user/PwdCode")
//    public Response PwdCode(HttpServletRequest request, String code) {
//        if (!code.isEmpty()) {
//            try {
//                HttpSession session = request.getSession();
//                String pwdCode = (String) session.getAttribute("pwdCode");
//                Integer pwdId = (Integer) session.getAttribute("pwdId");
//                System.out.println(pwdCode);
//
//                if (pwdCode.equals(code)) {
//                    session.removeAttribute("pwdCode");
//                    session.removeAttribute("pwdUserId");
//
//                    session.setAttribute("code",pwdId);
//                    return new Response(MessageConstants.MSG_SUCCESS, null, "");
//                } else {
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "验证码错误!!");
//                }
//            }
//            catch (Exception e)
//            {}
//
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
//    //修改密码
//    @ResponseBody
//    @RequestMapping("/user/setPwd")
//    public Response setPwd(HttpServletRequest request, String pwd) {
//        if (!pwd.isEmpty()) {
//            HttpSession session = request.getSession();
//            Integer ode = (Integer) session.getAttribute("code");
//            Integer Id = (Integer) session.getAttribute("pwdId");
//            if(ode == null || Id==null)
//            {
//                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//            }
//
//            System.out.println(Id);
//
//            //验证是否通过验证码验证
//            if (ode==Id) {
//                session.removeAttribute("pwdId");
//                session.removeAttribute("code");
//
//
//                String randomNumCode = Md5.getRandomNumCode(4);
//
//                System.out.println(randomNumCode);
//                //修改密码
//                String strPwd = Pwd.GetPwd(pwd,randomNumCode);
//                UserNo userNo = new UserNo();
//                userNo.setId(Id);
//                userNo.setPwd(strPwd);
//                userNo.setSalt(randomNumCode);
//                int row = userNoService.updateByPrimaryKeySelective(userNo);
//                if(row>0) {
//                    return new Response(MessageConstants.MSG_SUCCESS, null, "修改完成");
//                }
//                else
//                {
//                    return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "修改密码错误!!");
//                }
//            } else {
//                return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "验证码错误!!");
//            }
//        }
//        return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "提交数据错误");
//    }
//
//
//
////    //获取登陆会员资料
////    @ResponseBody
////    @RequestMapping("/user/JsonUserNo")
////    public Response JsonUserNo(HttpServletRequest request) {
////        if (!loginOut.checkLogin(request)) {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////        }
////
////        HttpSession session = request.getSession();
////        UserNo userNo1 = (UserNo) session.getAttribute("userNo");
////        if (userNo1 == null) {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////        } else {
////            return new Response(MessageConstants.MSG_SUCCESS, userNo1, "");
////        }
////    }
//
////    //获取登陆会员绑定手机的编号列表资料
////    @ResponseBody
////    @RequestMapping("/user/JsonUserNoList")
////    public Response JsonUserNoList(HttpServletRequest request) {
////        if (!loginOut.checkLogin(request)) {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////        }
////
////        HttpSession session = request.getSession();
////        UserNo userNo1 = (UserNo) session.getAttribute("userNo");
////        if (userNo1 == null) {
////            return new Response(MessageConstants.MSG_INVALID_LOGIN, null, "没有登陆或登陆错误!!");
////        } else {
////            //读取编号列表
////
////            List<UserNo> userNoList = userNoService.userIdSelectUserNoList(userNo1.getUserId());
////
////            return new Response(MessageConstants.MSG_SUCCESS, userNoList, "");
////        }
////    }
//
//    //退出登陆
//    @ResponseBody
//    @RequestMapping("/user/JsonUserNoOut")
//    public Response JsonUserNoOut(HttpServletRequest request) {
//        if (loginOut.checkLogin(request)) {
//            HttpSession session = request.getSession();
//            session.removeAttribute("user");
//        }
//        return new Response(MessageConstants.MSG_SUCCESS, null, "");
//    }
//
//
//
//}